# Create your views here.
#from django.http import HttpResponse
#from django.template import Context, loader
from datetime import *
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response, get_object_or_404
from django.db.models import Q
from django.template import RequestContext, Context
from widpy.data.models import * #Widget, Tema, Widgetsxetiqueta, Etiqueta, Comentarioswidget, Comentariostema, Temasxetiqueta
import string

#def index(request):
#    widget_list = Widget.objects.all().order_by('-id')[:5]
#    return render_to_response('verinfo/index.html', {'widget_list': widget_list})

#def index(request):
    #widget_list = Widget.objects.all().order_by('-id')[:5]
    #output = ', '.join([p.nombre_widget for p in widget_list])
    #return HttpResponse(output)

#def index(request):
    #widget_list = Widget.objects.all().order_by('-id')[:5]
    #t = loader.get_template('verinfo/index.html')
    #c = Context({
        #'widget_list': widget_list,
    #})
    #return HttpResponse(t.render(c))

def wdetail(request,widget_id):
    user_id = request.user.id
    is_auth = request.user.is_authenticated()
    des=0
    administ=0
    superadmin=0
    grupo = 0
    if(is_auth):
        tipouser = User.objects.get(id=user_id)
        de = Q(groups__id='1') & Q(id=user_id)
        des = User.objects.filter(de)
        ad = Q(groups__id='2') & Q(id=user_id)
        administ = User.objects.filter(ad)
    
    if (des):
        grupo = grupo + 1
        des = 1
    else:
        des = 0
    if (administ):
        grupo = grupo + 1
        des = 0
        administ = 1
    else:
        administ = 0
    if (request.user.is_superuser):
        grupo = grupo + 1
        des = 0
        administ = 0
        superadmin = 1
    else:
        superadmin = 0
    p = get_object_or_404(Widget, pk=widget_id) 
    categoria = Categoria.objects.all()
    item = Widgetsxetiqueta.objects.filter(widget=widget_id)
    item1 = Comentarioswidget.objects.filter(widget=widget_id).order_by("-fecha_creacion")
    if(is_auth):
		return render_to_response('verinfo/winfo.html', {'img':p.img, 'wid':p.id,'nombre': p.nombre_widget, 'autor': p.autor, 'categoria': p.categoria.nombre, 'info': p.descripcion, 'stars': p.promedio, 'tags': item, 'comentario': item1,'categorial': categoria, 'user_id':user_id, 'is_auth':is_auth,'desarrollador' : des, 'admin' : administ, 'superadmin' : superadmin, 'nombreuser': tipouser.username, 'grupo':grupo}, context_instance=RequestContext(request))
    else:
		return render_to_response('verinfo/winfo.html', {'img':p.img, 'wid':p.id,'nombre': p.nombre_widget, 'autor': p.autor, 'categoria': p.categoria.nombre, 'info': p.descripcion, 'stars': p.promedio, 'tags': item, 'comentario': item1,'categorial': categoria, 'user_id':user_id, 'is_auth':is_auth,'desarrollador' : des, 'admin' : administ, 'superadmin' : superadmin, 'nombreuser': 'guest', 'grupo':grupo}, context_instance=RequestContext(request))

def tdetail(request,tema_id):

    user_id = request.user.id
    is_auth = request.user.is_authenticated()
    des=0
    administ=0
    superadmin=0
    grupo = 0
    if(is_auth):
        tipouser = User.objects.get(id=user_id)
        de = Q(groups__id='1') & Q(id=user_id)
        des = User.objects.filter(de)
        ad = Q(groups__id='2') & Q(id=user_id)
        administ = User.objects.filter(ad)
    
    if (des):
        grupo = grupo + 1
        des = 1
    else:
        des = 0
    if (administ):
        grupo = grupo + 1
        des = 0
        administ = 1
    else:
        administ = 0
    if (request.user.is_superuser):
        grupo = grupo + 1
        des = 0
        administ = 0
        superadmin = 1
    else:
        superadmin = 0
    p = get_object_or_404(Tema, pk=tema_id)
    categoria = Categoria.objects.all()
    item = Temasxetiqueta.objects.filter(tema=tema_id)
    item1 = Comentariostema.objects.filter(tema=tema_id).order_by("-fecha_creacion")
    q = request.user.id
    if(is_auth):
		return render_to_response('verinfo/tinfo.html', {'img':p.img, 'tid':p.id,'nombre': p.nombre_tema, 'autor': p.autor, 'categoria': p.categoria.nombre, 'info': p.descripcion, 'stars': p.promedio, 'tags': item, 'comentario': item1,'categorial': categoria, 'user_id':user_id, 'is_auth':is_auth ,'desarrollador' : des, 'admin' : administ, 'superadmin' : superadmin, 'nombreuser': tipouser.username, 'grupo':grupo}, context_instance=RequestContext(request))
    else:
		return render_to_response('verinfo/tinfo.html', {'img':p.img, 'tid':p.id,'nombre': p.nombre_tema, 'autor': p.autor, 'categoria': p.categoria.nombre, 'info': p.descripcion, 'stars': p.promedio, 'tags': item, 'comentario': item1,'categorial': categoria, 'user_id':user_id, 'is_auth':is_auth ,'desarrollador' : des, 'admin' : administ, 'superadmin' : superadmin, 'nombreuser': 'guest', 'grupo':grupo}, context_instance=RequestContext(request))


def wcomment(request,widget_id):
    p = get_object_or_404(Widget, pk=widget_id)
    if request.method=='POST':
	comment=request.POST['comments']
	puntuacion=request.POST['puntuacion']
    q = request.user.id
    if q :
	if Comentarioswidget.objects.filter(usuario=q).filter(widget=widget_id):
	   return HttpResponseRedirect('/search/info/w/'+str(p.id)+'/')
    	a = Comentarioswidget(usuario_id=request.user.id, widget_id=widget_id, fecha_creacion=datetime.now(),cuerpo=comment, promedio=puntuacion)
    	a.save()
	b = Comentarioswidget.objects.filter(widget=widget_id)
	i=0
	pun=0
	for c in b:
		pun = pun + c.promedio
		i = i + 1
	p.promedio = pun/i
	p.save()
	return HttpResponseRedirect('/search/info/w/'+str(p.id)+'/')
    else:
    	return HttpResponseRedirect('/login/')

def tcomment(request,tema_id):
    p = get_object_or_404(Tema, pk=tema_id)
    if request.method=='POST':
	comment=request.POST['comments']
	puntuacion=request.POST['puntuacion']
    q = request.user.id
    if q:
	if Comentariostema.objects.filter(usuario=q).filter(tema=tema_id):
	   return HttpResponseRedirect('/search/info/t/'+str(p.id)+'/')
    	a = Comentariostema(usuario_id=request.user.id, tema_id=tema_id, fecha_creacion=datetime.now(),cuerpo=comment, promedio=puntuacion)
    	a.save()
	b = Comentariostema.objects.filter(tema=tema_id)
    	i=0
	pun=0
	for c in b:
		pun = pun + c.promedio
		i = i + 1
	p.promedio = pun/i
	p.save()
	return HttpResponseRedirect('/search/info/t/'+str(p.id)+'/')
    else:
    	return HttpResponseRedirect('/login/')

def wdel(request,widget_id):
    p = get_object_or_404(Widget, pk=widget_id)
    q = request.user.id
    if q :
	a = Comentarioswidget.objects.filter(usuario=q).filter(widget=widget_id)
	if a:
	   a.delete()
    	   b = Comentarioswidget.objects.filter(widget=widget_id)
	   i=0
	   pun=0
	   for c in b:
		   pun = pun + c.promedio
		   i = i + 1
	   if i == 0:
	   	   i = 1
	   p.promedio = pun/i
	   p.save()
	   return HttpResponseRedirect('/search/info/w/'+str(p.id)+'/')
    else:
    	return HttpResponseRedirect('/login/')

def tdel(request,tema_id):
    p = get_object_or_404(Tema, pk=tema_id)
    q = request.user.id
    if q :
	a = Comentariostema.objects.filter(usuario=q).filter(tema=tema_id)
	if a:
	   a.delete()
    	   b = Comentariostema.objects.filter(tema=tema_id)
	   i=0
	   pun=0
	   for c in b:
		   pun = pun + c.promedio
		   i = i + 1
	   if i == 0:
	   	   i = 1
	   p.promedio = pun/i
	   p.save()
	   return HttpResponseRedirect('/search/info/t/'+str(p.id)+'/')
    else:
    	return HttpResponseRedirect('/login/')

#def results(request, widget_id):
#    return HttpResponse("You're looking at the results of widget %s." % widget_id)
#    return HttpResponse("You're looking at the results of widget %s." % widget_id)
